Check out Grant Acedrex, our featured variant for April, 2024.


[ Help | Earliest Comments | Latest Comments ]
[ List All Subjects of Discussion | Create New Subject of Discussion ]
[ List Latest Comments Only For Pages | Games | Rated Pages | Rated Games | Subjects of Discussion ]

Comments/Ratings for a Single Item

Later Reverse Order EarlierEarliest
[Subject Thread] [Add Response]
F Duniho wrote on Thu, Mar 15, 2012 06:04 PM UTC:
Here is a progress report. I have written a script for using OpenID
authentication to sign up for a CVP account, and I am writing this from an
account I just created with it. But there are still some kinks to work out
before making it public.

🕸Fergus Duniho wrote on Tue, Mar 13, 2012 09:21 PM UTC:
Just to give a heads up on what's going to be happening soon, I am
currently working on a login system. I want to get this in place before I
set up the ratings system. At present, you need to enter your userid and
password together each time you need to confirm your identity here. With
the login system, you will be able to log in once and be automatically
recognized without having to enter your password again. I have the CVP
login working already, but I'm also adding OpenID login. This will let you
login with your Facebook, Twitter, Google, Yahoo, or MyOpenID accounts, as
well as through any other OpenID provider by directly typing in your
OpenID. I think I know how to make it work now, but I still need the time
to work on it. When you use either login, it will store cookies used to
recognize you. One cookie will tell who you are, and another will be an
encrypted string used to verify the accuracy of the first cookie. You will
be able to connect an OpenID with your CVP account, which will let you
directly login to your CVP account through an OpenID provider. This will
come in handy if you forget your CVP password, but it will normally be
faster to login to your CVP account directly. Another use I plan to make of
OpenID is to make registration faster. If you login with an OpenID, you
will be able to register without email authentication. As I envision things
working, you will be able to use an OpenID or a CVP userid to post
comments, but you will need a CVP account to rate games, vote in polls, or
play games on Game Courier.

Christine Bagley-Jones wrote on Mon, Mar 12, 2012 04:54 AM UTC:
haha, someone rating their own game is exactly like parents rating their
own kids, and no one knows a child best like their parents, but everyone
else just smiles.

🕸Fergus Duniho wrote on Sun, Mar 11, 2012 07:36 PM UTC:

Ben Reiniger wrote:

I'm a little worried about rating games when they are themed or experimental: for instance, my only game is 4D, so probably not a good candidate for frequent play, but (IMO of course) it is a very good setup as far as 4D games go. Should it get rated in the former sense or the latter? Maybe the frequency of play question will serve this purpose too, but maybe there should be a third rating? (So 'good game', 'interesting', and 'often played'?)

Yes, the frequency of play question should serve this purpose. It will help separate dislikes from people who are just prejudiced against 4D games without playing your particular game from dislikes by people who have actually played it. In general, ratings from people who have played a game will matter more than ratings from people who have not played a game. That should help protect niche games from being underrated.


🕸Fergus Duniho wrote on Sun, Mar 11, 2012 07:29 PM UTC:

Joe Joyce wrote

First, maybe separate the ratings into 3 groups: author rating, verified raters, unverified raters, then show them in order of best rating to worst rating.

There won't actually be unverified raters, because each rating will be keyed to the userid. This prevents ballot stuffing, and it allows raters to change their ratings. I plan to include inventor ratings in the header when they are available, along with figures on the other ratings.

Second, use both types of words for rating. I can see rating a game excellent, but not a favorite, or a game average, but a favorite.

I don't want to overcomplicate things. One of my main goals with a new rating system is to make it easy to use. One possibility is to integrate the new and old rating systems, such that if someone rates a game as Poor or BelowAverage in a comment, it gets recorded as a Dislike, and if someone rates a game as Good or Excellent, it gets recorded as a Like. But a user would still be free to change his ratings in the new system, even favoriting a game he has rated as average in a comment.

Third, group games by both clustering and category. Dimensionality would be one obvious category, as would size, but I would suggest adding a few groupings and categories that aren't differentiated here.

Since this information is already in the database, and ratings will be keyed to ItemIDs, it should be a simple matter to compare the ratings for groups of related games.

The purpose of all this is to direct people to games they might like quickly. We have around a thousand presets now, and a few times that in total variants. If this is to be useful, we should offer patrons a useable search mechanism. Is that possible with the resources we have?

Here are a few things I plan on adding: 1) People who like this game also like these games. 2) Given your likes and favorites, here are other games you may like.


Joe Joyce wrote on Sun, Mar 11, 2012 04:01 PM UTC:
I've been following this conversation with a little interest for a while.
Might I offer a few [undoubtedly complicating] suggestions? 

First, maybe separate the ratings into 3 groups: author rating, verified
raters, unverified raters, then show them in order of best rating to worst
rating. 

Second, use both types of words for rating. I can see rating a game
excellent, but not a favorite, or a game average, but a favorite. Let me
use Ben's game, TessChess, as an example. It is an excellent 4-D chess
variant. It may not be the best fully 4-D FIDE variant possible, but it is
certainly one of them. It is, unfortunately, essentially unplayable.
Computer assistance would be very beneficial to this game by showing all
the moves a piece could make, but the game would still be rather difficult.
Ben and I have discussed our 4-D games, and essentially agree on matters of
dimensionality and playability. HyperChess is not fully 4-D, but that makes
it humanly playable without aid. It even has a few fans. 

Third, group games by both clustering and category. Dimensionality would be
one obvious category, as would size, but I would suggest adding a few
groupings and categories that aren't differentiated here. There are a lot
of games that would fall under the [Los Alamos -] FIDE - Capablanca - Grand
Chess cluster, and could be called the 'pure FIDE' cluster, as they use
only the elements of FIDE. The Chinese variants, XiangQi, Janggi... are
another cluster, as are the shogis. But the shogis are also 'Drop' games,
games that bring reinforcements onto the board at some point[s] in the
game. Grin, and, at this point, shatranj variants would be another game
cluster, associated with a 'short range' category, and thus cousins of
the shogis, which also feature short ranged pieces.

The purpose of all this is to direct people to games they might like
quickly. We have around a thousand presets now, and a few times that in
total variants. If this is to be useful, we should offer patrons a useable
search mechanism. Is that possible with the resources we have?

🕸Fergus Duniho wrote on Sun, Mar 11, 2012 01:25 PM UTC:

Ben Reiniger wrote:

I think the inventor shouldn't rate the game; if they want to mention what they think of the game, it should go into the page somewhere (in the introduction would be good).

Judging by the data I collected on the frequency of ratings in the comment system, there is a lot of rating inflation going on, and it can't all be due to inventors rating their own games more favorably than more objective critics. In fact, I can screen for that. Here are the results of non-anonymous ratings by people other than the inventor:

Array
(
    [Excellent] => 782
    [Good] => 698
    [Poor] => 137
    [Average] => 27
    [BelowAverage] => 18
)

Excellent is still the most common rating, followed by Good and Poor. We can also look specifically at how inventors rate their own games. Here are the results of non-anonymous raters rating their own games:

Array
(
    [Excellent] => 18
    [Good] => 13
    [Poor] => 3
    [Average] => 2
    [BelowAverage] => 1
)

This is a smaller sample size, but the pattern is not significantly different. Pride might motivate inventors to rate their own games higher, but that doesn't account for others also giving their games an Excellent rating more often than other ratings. Perhaps the other raters feel they would be hurting the inventor's feelings if they rated a game anything less than Excellent. Perhaps the word 'excellent' has lost its comparative connotations. We may use the word too liberally, even for things that aren't really that much better than other things.

One of my main concerns in designing a new rating system is to avoid the rating inflation common in the current rating and comment system. One thing I think will help is to replace qualitative rating terms (Poor, BelowAverage, Average, Good, Excellent) with personal preference terms (Dislike, Like, Favorite). I think Favorite works better than Excellent, because it is more clearly a comparative term than Excellent is. Judging from the data I just presented, I don't think that banning inventors from rating their own games would do anything to reduce rating inflation.

Furthermore, given that an inventor is usually the most experienced player of a Chess variant, or at least the one person who knows the game better than anyone else does, I think the opinion an inventor has of his own games is valuable information, and it should be included in the system.


Graeme Neatham wrote on Sun, Mar 11, 2012 03:37 AM UTC:

Fergus Duniho writes:

What kind of performance issues are there? With a composite primary key, will it search individual keys until it finds a match instead of directly knowing where to go?

It is quicker to traverse a numeric key than an alpha or alpha-numeric. But it is not just a question of machine performance - development time including code production (manual and automated) and testing can be less efficient with composite primary keys. There is also the question of maintenance and the persistence of natural composite keys when compared to surrogate primary keys.

But this isn't the place to conduct a seminar in database design and I have already declared myself guilty of misapplying enterprise practice - it isn't easy, sometimes, to put aside work practices gleaned over 3 decades.


🕸Fergus Duniho wrote on Sun, Mar 11, 2012 02:28 AM UTC:
I had a script count the number of times each rating has been used in the
comments. Here are the results:

Array
(
    [Good] => 2052
    [None] => 21618
    [Excellent] => 3167
    [Poor] => 511
    [] => 90
    [Average] => 156
    [BelowAverage] => 76
)

I then thought to do the same thing on only Game pages. Here are the
results of that:

Array
(
    [Good] => 1507
    [None] => 9939
    [Excellent] => 2068
    [Poor] => 342
    [BelowAverage] => 43
    [Average] => 69
    [] => 19
)

Whichever results I use, the same pattern emerges. Discounting None and
null, Excellent is used most often, followed by Good and Poor. BelowAverage
and Average are used much less than these three. This supports the idea
that most raters are really employing a three-point scale rather than a
five-point scale. This lends support to using the 'Dislike, Like,
Favorite' scale over the five-point scale currently in use with the
comments.

Judging from this data, I also think that Excellent has been overused. More
games have been rated Excellent than the sum of all the other ratings. A
rating of Excellent should be reserved for the very best games, and if it
were, it would be a less common rating. The way I want to use Favorite may
curb this tendency. One thing I want to do with favorites is list each
user's favorites on his information page. When selecting a game as
favorite, the user would understand that he is also adding it to a viewable
list of favorites, and he may choose his rating with a view to this.

🕸Fergus Duniho wrote on Sat, Mar 10, 2012 11:40 PM UTC:
For the rating scale, here are some options I have in mind:

Dislike, Like, Favorite

Poor, Inferior, Good, Superior, Exceptional

Dislike, Interesting, Like, Favorite

🕸Fergus Duniho wrote on Sat, Mar 10, 2012 11:31 PM UTC:
Here are three different options:

1) Keep the rating and comment system separate from the dedicated game
rating system I have in mind.

2) Integrate them.

3) Turn the rating and comment system into just a comment system. Keep all
the old ratings in the comment system but don't allow new ratings. Export
the ratings of game pages into the dedicated game rating system.

Ben Reiniger wrote on Sat, Mar 10, 2012 08:40 PM UTC:
I generally like the idea.  I think the inventor shouldn't rate the game;
if they want to mention what they think of the game, it should go into the
page somewhere (in the introduction would be good).  I'm a little worried
about rating games when they are themed or experimental: for instance, my
only game is 4D, so probably not a good candidate for frequent play, but
(IMO of course) it is a very good setup as far as 4D games go.  Should it
get rated in the former sense or the latter?  Maybe the frequency of play
question will serve this purpose too, but maybe there should be a third
rating?  (So 'good game', 'interesting', and 'often played'?)

🕸Fergus Duniho wrote on Sat, Mar 10, 2012 05:56 PM UTC:

David Howe wrote:

So my feeling is that we should have a single, consistent commenting and rating system. Having two parallel systems is confusing and inelegant. That said, I am at a loss for how to proceed. Somehow, we should keep what we have, but also add desired functionality, but as a single, comprehensive system.
I suppose we could export the existing comment and ratings into the proposed new system, and have a unified and elegant commenting and rating system. That will take more effort, but may be worth it.

That could be tricky. For one thing, comment ratings are associated with individual comments instead of with individual users. If I post two comments to a page with different ratings, I now have multiple ratings for the same game. If we exported the comment ratings, we would have to identify the latest ratings made by each user. Also, what I have in mind is specifically for games, not for pages. The rating and comment system in place is available for all pages, and even on game pages, people sometimes use it to rate the page instead of the game itself. Although I have previously proposed using a five-point rating scale, I have more recently been thinking of going with Like, Dislike, and Favorite. There is also the matter of measuring popularity, which the rating and comment system does not handle at all.

Assuming I used a five-point scale, the ratings from the rating and comment system might be incorporated into the Rating field of the Likes table. When someone posts a comment, it could show his current rating for the game, and if he changed it with his comment, it would update the Rating value in the Likes table. A comment could also report the player's experience with the game at the time of the comment. So the comment table would keep track of historical data, and the Likes table would keep track of current data. The ratings in the comments could be replaced by integers, and a separate table could be used to translate them into words. Besides entering ratings with a comment, I would provide a rating form in the header, which can be used without entering a comment, and it would just update the Likes table.

Those are my thoughts on how they could be merged together. I'm still not sure it would be the best way to go. We may want to keep them separate, using one for page ratings and one for game ratings.

I'll let you know if I need help with SQL.


David Howe wrote on Sat, Mar 10, 2012 05:08 PM UTC:

Fergus, if you need any help with the SQL end of things, please let me know.

There are two existing rating and commenting systems. I will refer to the older (and heavily used) system as the rating and commenting system. The newer system, which is not used to any significant extent, I will call the newer rating system.

I agree that the newer rating system is not used (much to my chagrin, given the work I put into it) and should be wiped from the site. The older rating and commenting system seems to work acceptably, although it has its issues and limitations. I agree that we shouldn't toss years of valuable comments/ratings.

So my feeling is that we should have a single, consistent commenting and rating system. Having two parallel systems is confusing and inelegant. That said, I am at a loss for how to proceed. Somehow, we should keep what we have, but also add desired functionality, but as a single, comprehensive system.

I suppose we could export the existing comment and ratings into the proposed new system, and have a unified and elegant commenting and rating system. That will take more effort, but may be worth it.

Just my 2 cents. Please let me know if I can be of any help on the PHP or SQL end of things. I really hope we can achieve a more effective and elegant system than the existing one.


🕸Fergus Duniho wrote on Sat, Mar 10, 2012 05:03 PM UTC:

Graeme Neatham wrote:

Primary Key - the Candidate Key that is the main index for a table and which will be used as a Foreign Key in other tables. For performance purposes a Primary Key will usually not be Composite.

What kind of performance issues are there? With a composite primary key, will it search individual keys until it finds a match instead of directly knowing where to go?

Self-rating - personally I would be wary of such a practice, not because I think inventors are always going to give maximum marks to their own games, but because they are too close to their own games to provide a disinterested assessment.

I'm not worried about that. I think that game inventors, especially the more productive ones, distinguish between games they consider experiments and games they consider masterpieces. And especially when it comes to inventors of several games, I want to know which ones they like best. Regardless of how objective inventors can be in evaluating their own games, I want to know how they evaluate their own games.

Overwriting of data due to revision of values leading to loss of historical data strikes me as being what would be called 'bad practice'. But I guess I'm guilty of trying to apply corporate standards in a non-corporate situation.

I'm not worried about overwriting old data, because it will have no use anyway. Also, if I included old data, I would either have to expand the table dynamically or use a more complicated primary key. The latter approach could be a real problem, because the php script would not know what primary key to use to access the ratings.


Graeme Neatham wrote on Sat, Mar 10, 2012 03:21 PM UTC:

Relational Database terminology:

  • Candidate Key - a column or set of columns providing data that is unique for each row. Where a set of columns is involved the term Composite Candidate Key is used.
  • Primary Key - the Candidate Key that is the main index for a table and which will be used as a Foreign Key in other tables. For performance purposes a Primary Key will usually not be Composite.
  • Foreign Key - the Primary Key of another table.
  • Key - when used without qualification will normally be understood to be shorthand for Primary Key

Self-rating - personally I would be wary of such a practice, not because I think inventors are always going to give maximum marks to their own games, but because they are too close to their own games to provide a disinterested assessment.

Overwriting of data due to revision of values leading to loss of historical data strikes me as being what would be called 'bad practice'. But I guess I'm guilty of trying to apply corporate standards in a non-corporate situation.


🕸Fergus Duniho wrote on Sat, Mar 10, 2012 01:21 PM UTC:
Having read some more about MySQL, I think the table might look like this:

create table Likes (
    ItemID blob,
    UserID blob,
    Freq tinyint,
    Rating tinyint,
    primary key (ItemID, UserID),
    key (ItemID),
    key (UserID)
);

I removed UniqID, because I learned that a key can be made from multiple
fields.

🕸Fergus Duniho wrote on Sat, Mar 10, 2012 01:04 PM UTC:

Graeme Neatham wrote:

It might be useful to include an ID for the item's creator. I know this can be found by joining through the ItemID but keeping it in this table as well would enable faster queries concerning games inventors. It would also make it easier to stop creators rating their own games (UserID != CreatorID)

Actually, I want to encourage inventors to rate their own games. A game's inventor is usually the most experienced player of the game. As an inventor myself, I'm not expecting inventors to give top ratings to all of their games. I would give top ratings to some of my games and not to others. I don't think there is any need to add inventor ids to the table, because these can be retrieved easily enough from the Item table.

Will a user be able to revise their ratings? If so the table will need a timestamp field and possibly either a binary current/superseded field or a status field. Or previous ratings might have their own table

Yes, users will be able to revise their ratings. I don't see the need for a timestamp or other field. Old rating values will simply be replaced with new rating values.


Graeme Neatham wrote on Sat, Mar 10, 2012 09:42 AM UTC:

Just a few thoughts about the Likes table:

  • It might be useful to include an ID for the item's creator. I know this can be found by joining through the ItemID but keeping it in this table as well would enable faster queries concerning games inventors. It would also make it easier to stop creators rating their own games (UserID != CreatorID)
  • Will a user be able to revise their ratings? If so the table will need a timestamp field and possibly either a binary current/superseded field or a status field. Or previous ratings might have their own table - LikesHistory


🕸Fergus Duniho wrote on Sat, Mar 10, 2012 02:52 AM UTC:
We have that already. It is called Recognized Variants. But it takes effort
to add to it, and it is not as responsive to user preferences.

For the technically inclined, here is the table I'm thinking of adding:

create table Likes (
    UniqID blob,
    ItemID blob,
    UserID blob,
    Freq tinyint,
    Rating tinyint,
    primary key(UniqID),
    key (ItemID, UserID)
);

The UniqID will be a concatenation of ItemID with UserID, and its purpose
is to uniquely identify a row for quick reading and writing. The other two
keys, ItemID and UserID, may have the same value for multiple rows and are
included for finding all rows with the same ItemID or the same UserID. The
remaining two values include integers representing answers to the two
questions.

Christine Bagley-Jones wrote on Sat, Mar 10, 2012 01:50 AM UTC:
you know, another idea, besides what you doing, if you are worried about
people coming to this site and not finding quality games, or finding it
hard to find them, making a link on main page to 'recommended games', or
something along those lines (some recommended top quality games) etc etc. 

You could start by just picking some obviously top games. Later you could
change it to link to the top rated games that have been rated by your
system.

Christine Bagley-Jones wrote on Sat, Mar 10, 2012 01:40 AM UTC:
cool, well done, hehe, good work, just you know, being protective and
silly, great work fergus, your a legend.
sorry if i cause trouble, hehe, dont mean to.

🕸Fergus Duniho wrote on Sat, Mar 10, 2012 01:30 AM UTC:

Christine Bagley-Jones wrote:

But i see you are bent on changing things, without bothering also to talk to the other members apparently, haha.

Talking to the other members about what I'm planning is exactly what I'm doing here. But so far, you're the only one who has had anything to say about it. I assume from their silence that other members are okay with what I'm planning.

The only thing i am trying to do is keep 10 years of members ratings.

I plan to leave the comments sections and page ratings alone. What I intend to replace is the game ratings system that has been used for only three games the whole time it has been here.

Every game has a game page, every member can rate these pages. Sounds fair to me, i dont see how that is unfair to any game. I have faith in the members rating games, even non-members, for that matter.

It's fair in that it is equally useless for all games. While it allows people to rate and review games, it does not make use of this information in any way. What I have planned is a dedicated game rating system that can report back various types of information, such as the popularity or average rating for a game, an individual member's favorite games, or whether the inventor has played the game and how he rates it himself.

Can i ask, what does it mean to put ratings in the 'item table'?

It is MySQL jargon, and only David Howe needs to understand precisely what I mean. Anyhow, I'm now thinking it would be best to create a new table in the database, because it would be shorter than the Item or Person tables and so faster to access.

Is this a page like this .. http://www.chessvariants.com/index/mainquery.php?type=Any&startswithletter=Na&orderby=LinkText&displayauthor=1&displayinventor=1

No, it's nothing you would see on the website.


Christine Bagley-Jones wrote on Sat, Mar 10, 2012 12:37 AM UTC:
Fergus, you said 'What you're wanting to do is minimize false negatives,
quality games that unfairly go unrecognized.' Sorry, this is not true. The
only thing i am trying to do is keep 10 years of members ratings. Every
game has a game page, every member can rate these pages. Sounds fair to me,
i dont see how that is unfair to any game. I have faith in the members
rating games, even non-members, for that matter.
But i see you are bent on changing things. Can i ask, what does it mean to put ratings in the 'item table'? Is this a page like this ..
http://www.chessvariants.com/index/mainquery.php?type=Any&startswithletter=Na&orderby=LinkText&displayauthor=1&displayinventor=1

🕸Fergus Duniho wrote on Fri, Mar 9, 2012 09:40 PM UTC:
While trying to figure out how to make a new ratings system work, I have
been looking into the database to see what is there. One of the tables is
called Ratings, and it is for the rating system I have described as hidden
and useless. Only three games have been rated. These are an example game
David Howe made to test the ratings system, European Chess, and Shatranji.
Given the scant use of this ratings system, I think it would be alright to
discard it. What I want to replace it with will be more prominent and
easier to use, making it more likely that people will use it. What I'm
trying to decide on right now is how to represent the data in the database.
It could go in the Item table, the Person table, or both. Putting it in the
Item table makes it easier to calculate the average ratings for a game,
while putting it in the Person table makes it easier to list someone's
favorites. I'll probably go with putting it in the Item table. Since
userids are uniformly lowercase and all the keys in the Item table are
mixed case, it should be safe to add userids as keys in the Item table. The
userid would be a key to a two-character string representing how someone
has answered the two questions. To calculate an average rating, I could
then scan an Item row for lowercase keys, add up the values and divide.

25 comments displayed

Later Reverse Order EarlierEarliest

Permalink to the exact comments currently displayed.